云主机高可用
实现原理
添加物理机时,管理节点会通过 kvmagent获取物理机的所有IP地址。
管理节点周期性的发送http ping到物理机的kvmagent进行检测物理机状态。
当物理机未在指定时间内响应请求时命,则认定物理机可能宕机,物理机探测器启动。
当发现疑似宕机的物理机时,管理节点查找该物理机所在集群的主存储的存储网络IP。
管理节点对物理机进行检测,管理节点在指定时间内,使用存储网络IP周期性的使用nmap扫描物理机端口,如果某次扫描成功,则认为物理机正常;否则通知集群内监控的物理机通过存储网络IP使用nmap扫描疑似宕机物理机,如果某次扫描成功,则认为该物理机仍然工作,不触发高可用;若检测失败,则触发高可用。
云主机触发高可用的约束条件
- 全局设置中已开启云主机全局高可用。
- 已设置云主机高可用策略为激进策略。
保守策略:管理节点不会对未知状态的云主机主动触发高可用迁移,不会强制停止云主机,不会对绑定GPU设备的云主机进行迁移。
激进策略:只要满足高可用条件,就可对云主机触发高可用迁移。
- 云主机高可用模式已设置NeverStop。
- 云主机使用共享存储、包括Ceph、FC SAN、IP SAN、NFS等;非共享存储高可用只会在云主机异常停止时自动重新在原物理机上拉起。
- 支持云主机的磁盘分布在集群内多个共享存储内的高可用。
- 跨集群高可用需要在全局设置中开启跨集群高可用。
触发云主机高可用
- 物理机及存储故障:主要有以下常见问题场景,管理节点为单管理节点:
失联点 | 情况具体描述 | 高可用策略 | 云主机状态 | 高可用 |
---|---|---|---|---|
管理节点与计算节点管理网络异常 | 管理节点与计算节点管理网络异常,计算节点存储网络正常。 | 保守 | 未知 | 不触发 |
管理节点与计算节点管理网络异常 | 管理节点与计算节点管理网络异常,计算节点存储网络正常。 | 激进 | 未知→运行中 | 触发 |
计算节点存储网络异常 | 管理节点与计算节点管理网络正常,计算节点存储网络异常。 | 保守&激进 | 停止→运行中 | 触发 |
管理节点故障 | 管理节点系统故障(停止、重启) | 保守&激进 | 运行中 | 不触发 |
存储整体故障 | 存储故障(存储故障、存储网络故障等) | 保守&激进 | 已停止 | 不触发 |
计算节点故障 | 计算节点故障(停止、重启、假死等) | 保守&激进 | 停止→运行中 | 触发 |
- 云主机自身故障:云主机蓝屏,内部异常导致云主机停止、云主机内存溢出、云主机系统假死等,均触发云主机高可用。